<?php
// vim:set expandtab tabstop=3 shiftwidth=3 softtabstop=3 foldclose=all foldmethod=marker:
/**
 * 项目：   5anet
 * 文件：   class/article/SaveEdit.class.php
 *
 * 编辑后保存文章的内容
 *
 * PHP Version 5
 *
 * @package:   class.article
 * @author:    Mike.G Chinese Name: 黄叶 <hylinux@gmail.com>
 * @license:   http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1 
 * @copyright: www.5anet.com
 * @version:   $Id: SaveEdit.class.php,v 1.1 2006-09-24 14:38:33 ghw Exp $
 * @date:      $Date: 2006-09-24 14:38:33 $
 */

include_once CLASS_PATH.'main/BaseAction.class.php';

//包含我们需要的工具软件包
include_once CLASS_PATH.'article/CategoryUtil.class.php';
include_once CLASS_PATH.'article/ArticleUtil.class.php';
include_once FUNCTION_PATH.'getCurrentDate.fun.php';
include_once FUNCTION_PATH.'getIp.fun.php';
include_once FUNCTION_PATH.'ConvertString.fun.php';




//定义处理的类

class SaveEdit extends BaseAction {

   /**
    * 数据库的连接
    */
   private $db;

   /**
    * 构造函数
    * @param:  NULL
    * @return: NULL
    * @access: public
    */
   public function __construct() {
      $this->db = $this->getDB();
   }

   /**
    * 保存文章的内容
    * @param:  null
    * @return: null
    * @access: public
    */
   public function run() {
      $id = $this->getParameterFromPOST('id');

      if ( !$id  ) {
         $this->AlertAndBack("没有指定要编辑的文章");
         return;
      }
 
      //看看文章是否存在
      
      if ( !ArticleUtil::isExists($this->db, $id)) {
         $this->AlertAndBack("要编辑的文章不存在");
         return;
      }

      //看看文章的编辑提交者是不是现在正在登录的用户。
      $user_name = $_SESSION['user']['name'];

      //取得文章的信息
      $article_info = ArticleUtil::getArticleInfor($this->db, $id);

      
      if ( $article_info['submitUser'] != $user_name ) {
         $this->AlertAndBack('只有文章的提交者才能编辑文章');
         return;
      }




      //收集变量
      //并对变量进行判断
      //文章的标题
      $title = $this->getParameterFromPOST("title");

      if ( !$title || strlen($title) <= 0 ) {
         $this->AlertAndBack("文章标题不能为空。");
         return;
      }

      //如果文章的标题过长。在这里的做法是让
      //MySQL默认的截取掉
      //不用理会
      //文章的作者
      $author = $this->getParameterFromPOST("author");

      //文章的出去
      $fromaddr = $this->getParameterFromPOST("fromaddr");

      //文章的分类。
      $catagory = $this->getParameterFromPOST("catagory");

      //判断$catagory 是否存在。
      if ( !CategoryUtil::isExists($this->db, $catagory) ) {
         $this->AlertAndBack('文章分类不存在.');
         return;
      }

      //判断文章的内容是否为空
      $content = $this->getParameterFromPOST('content');

      if ( !$content || strlen($content) <= 0 ) {
         $this->AlertAndBack('文章内容不能为空.');
         return;
      }

      $now = getNoFormateCurrentDate();

      //所有的条件都判断过了。
      //现在可以把文章的内容存储到数据库中去了。
//      $this->db->debug = 1;
//      $sql = 'insert into article (type, title, author, fromaddr, content, clicks, submitUser, submitDate,'.
//         "keyword ) values ('".$catagory."','$title', '$author', '$fromaddr', '$content', '1', '".
//         $_SESSION['user']['name']."', '$now', '$title')";

      $sql = "update article set type='$catagory', title='$title',  author='$author', fromaddr='$fromaddr', ".
         "content='$content', keyword='$title' where id='$id' ";

      $this->db->Execute($sql);
         /*
         array(
            $catagory,
            $title,
            $author,
            $fromaddr, 
            $content, 
            1,
            $_SESSION['user']['name'],
            $now,
            $title));
          */

      if ( $this->db->ErrorNo() ) {
         echo $this->db->ErrorMsg()."<br>";
         return;
      }


      //新增文章后，转去查看文章
      
      header('location:index.php?module=article&action=showarticle&id='.$id);




   }



}

?>
